CensusでDestinationにSlackを設定してSnowflakeのデータをSyncしてみた

CensusでDestinationにSlackを設定してSnowflakeのデータをSyncしてみた

Clock Icon2024.10.25

さがらです。

CensusでDestinationにSlackを設定してSnowflakeのデータをSyncしてみたので、とても簡素な内容になりますが本記事で内容をまとめてみます。

https://docs.getcensus.com/destinations/available-destinations/slack

SnowflakeをSourceに設定

CensusのSourceにSnowflakeを設定する方法については、下記のブログをご覧ください。

https://dev.classmethod.jp/articles/census-set-source-snowflake/

SlackをDestinationに設定

次に、CensusのDestinationにSlackを設定していきます。

左のメニューのDestinationsから、+ Add a Destinationを押します。

2024-10-22_10h54_03

Slackを選択します。

2024-10-22_10h54_47

Nameを入れたら、AuthorizationのLoginを押します。

2024-10-22_10h57_36

その後、Censusと対象のSlack workspaceを連携してよいかの確認画面が出ますので、Allowを押します。

2024-10-22_10h59_40

するとCensusの画面に戻り接続Testが行われるので、これが無事に終わったら右下のFinishを押してDestinationの設定は完了となります。

2024-10-22_11h00_59

Syncの設定

次に、設定したSourceとDestinationを用いて、Syncの設定をしていきます。

左のSyncsから、Create a syncを押します。

2024-10-23_17h49_41

まず、Select a Sourceから使用するデータを設定します。今回はAny Warehouse Tableで、Snowflake上のテーブルを設定することにします。

2024-10-23_17h57_54

次にSelect a Destinationから、SlackのどのObjectに対してSyncを行うか設定します。(これはMessageのみとなっています。)

2024-10-23_17h55_22

Select a Sync Keyは、Sync対象のテーブルのレコード変更を検知できるユニークなカラムを選択します。

2024-10-23_18h00_38

Select a Channel IDは、Slackでメッセージを送りたいチャンネルを指定します。

2024-10-23_18h02_26

Set Up Slack Notificationは、送信したいメッセージを記入します。エディター上でSourceのテーブルのカラムを選択するだけで入力できるのはとても楽ですね。また、任意のSlackチャンネルへのリンクを貼ることもできます。

Slackのユーザーの「member ID」を用いて@<取得したmember ID>と入れると、メンションも可能です。

2023-12-07_00h11_14

2024-10-23_18h11_21

Should existing data be synced?では、Backfill All Recordsにチェックを入れると既存のレコードすべてが一度Slackに送られ、Skip Current Recordsにチェックを入れると今後新規で入ったレコードだけが対象となります。

※今回はBackfill All Recordsでやってみます。通常はSkip Current Recordsの方がマッチするケースは多いと思います。

2024-10-23_18h14_00

Run a Test Syncでは、実際に正しくメッセージが届くかテストすることが出来ます。(1行だけテスト実行できるのが親切だと感じました。)

2024-10-23_18h15_38

2024-10-23_18h16_02

2024-10-23_18h17_14

2024-10-23_18h17_33

ここまで設定ができたら、右下のNextを押します。

2024-10-23_18h18_30

最後に、スケジュール実行のタイミングを設定し、Createを押します。Continuousに設定すると、約1分おきに新しいレコードがないかチェックして、変更があったらメッセージを送る形を取ることが出来ます。(公式ドキュメントより)

2024-10-23_18h22_52

初回Sync

スケジュール実行のタイミングをContinuousにしていたため、1分ほど経つと自動で初回Syncが動きます。

Should existing data be synced?では、Backfill All Recordsにチェックを入れていたため、Sycn対象のテーブルの全レコード(99件)分メッセージが送られました。

2024-10-23_18h28_43

Sync Historyから確認すると、5分間かかっていました。

2024-10-23_18h29_46

2回目Sync

スケジュール実行のタイミングをContinuousにしている状態で、Sync対象のテーブルに対して以下のクエリを実行してみます。

INSERT INTO ORDERS_CLONE (ID, USER_ID, ORDER_DATE, STATUS)
    VALUES (101, 201, '2024-10-25', 'completed');

この後、Censusの画面を見るとすぐに検知がされて、Slackにメッセージが送られました。

2024-10-25_13h21_01

2024-10-25_13h21_47

2024/10/31追記:Continuousにしていると、Snowflakeのウェアハウスをかなり消費します

今回のブログでは「Continuous」でSyncを試したのですが、このまま放置していたら下図のようにXSのウェアハウスでも毎日10~12クレジットを消費していました…

2024-10-31_13h29_45

下記のようなクエリがCensusから発行されていました。

キャッシュが効かないクエリがCensusから発行されているようなので、Continuousにする際はご注意ください!

2024-10-31_13h35_34

2024-10-31_13h36_17

最後に

CensusでDestinationにSlackを設定してSnowflakeのデータをSyncしてみました。

2024年10月25日時点、SlackはCensusのFree Destinationの一つですので、気軽に導入できるのも良いですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.